home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 August (Alt) / CHIP 2005-08.1.iso / program / freeware / MediaMan2.2_Setup.exe / Help / MediaMan_Help.chm / js / cb2.js next >
Encoding:
Text File  |  2005-06-04  |  7.2 KB  |  280 lines

  1. /*
  2.  * This script was created by Erik Arvidsson (erik@eae.net)
  3.  * for WebFX (http://webfx.eae.net
  4.  * Copyright 2001
  5.  * 
  6.  * For usage see license at http://webfx.eae.net/license.html    
  7.  *
  8.  * Created: 2001-03-17
  9.  */
  10.  
  11. /*
  12.  * This file depends on emulateAttachEvent and extendEventObject
  13.  * found in ieemu.js to get Mozilla to work
  14.  * 
  15.  * Styling is currently done in a separate css files
  16.  * cb2.css
  17.  *
  18.  */
  19.  
  20. /* Set up IE Emualtion for Mozilla */
  21. if (window.moz == true && (typeof window.emulateAttachEvent != "function" || typeof window.extendEventObject != "function"))
  22.     alert("Error! IE Emulation file not included.");
  23.  
  24. if (window.moz) {
  25.     emulateAttachEvent();
  26.     extendEventObject();
  27. }
  28. /* end Mozilla specific emulation initiation */
  29.  
  30. function createButton(el) {
  31.  
  32.     el.attachEvent("onmouseover",    createButton.overCoolButton);
  33.     el.attachEvent("onmouseout",    createButton.outCoolButton);
  34.     el.attachEvent("onmousedown",    createButton.downCoolButton);
  35.     el.attachEvent("onmouseup",        createButton.upCoolButton);
  36.     el.attachEvent("onclick",        createButton.clickCoolButton);
  37.     el.attachEvent("ondblclick",    createButton.clickCoolButton);
  38.     el.attachEvent("onkeypress",    createButton.keypressCoolButton);
  39.     el.attachEvent("onkeyup",        createButton.keyupCoolButton);
  40.     el.attachEvent("onkeydown",        createButton.keydownCoolButton);
  41.     el.attachEvent("onfocus",        createButton.focusCoolButton);
  42.     el.attachEvent("onblur",        createButton.blurCoolButton);
  43.     
  44.     el.className = "coolButton";
  45.     
  46.     el.setEnabled    = createButton.setEnabled;
  47.     el.getEnabled    = createButton.getEnabled;
  48.     el.setValue        = createButton.setValue;
  49.     el.getValue        = createButton.getValue;
  50.     el.setToggle    = createButton.setToggle;
  51.     el.getToggle    = createButton.getToggle;
  52.     el.setAlwaysUp    = createButton.setAlwaysUp;
  53.     el.getAlwaysUp    = createButton.getAlwaysUp;
  54.     
  55.     el._enabled        = true;
  56.     el._toggle        = false;
  57.     el._value        = false;
  58.     el._alwaysUp    = false;
  59.     
  60.     return el;
  61. }
  62.  
  63. createButton.LEFT = window.moz ? 0 : 1;
  64.  
  65. /* event listeners */
  66.  
  67. createButton.overCoolButton = function () {
  68.     var toEl = createButton.getParentCoolButton(window.event.toElement);
  69.     var fromEl = createButton.getParentCoolButton(window.event.fromElement);
  70.     if (toEl == fromEl || toEl == null) return;
  71.     
  72.     toEl._over = true;
  73.     
  74.     if (!toEl._enabled) return;
  75.     
  76.     createButton.setClassName(toEl);
  77. };
  78.  
  79. createButton.outCoolButton = function () {
  80.     var toEl = createButton.getParentCoolButton(window.event.toElement);
  81.     var fromEl = createButton.getParentCoolButton(window.event.fromElement);
  82.     if (toEl == fromEl || fromEl == null) return;
  83.     
  84.     fromEl._over = false;
  85.     fromEl._down = false;
  86.     
  87.     if (!fromEl._enabled) return;    
  88.  
  89.     createButton.setClassName(fromEl);
  90. };
  91.  
  92. createButton.downCoolButton = function () {
  93.     if (window.event.button != createButton.LEFT) return;
  94.     
  95.     var el = createButton.getParentCoolButton(window.event.srcElement);
  96.     if (el == null) return;
  97.     
  98.     el._down = true;
  99.     
  100.     if (!el._enabled) return;
  101.  
  102.     createButton.setClassName(el);
  103. };
  104.  
  105. createButton.upCoolButton = function () {
  106.     if (window.event.button != createButton.LEFT) return;
  107.     
  108.     var el = createButton.getParentCoolButton(window.event.srcElement);
  109.     if (el == null) return;
  110.     
  111.     el._down = false;
  112.     
  113.     if (!el._enabled) return;
  114.     
  115.     if (el._toggle)
  116.         el.setValue(!el._value);
  117.     else
  118.         createButton.setClassName(el);
  119. };
  120.  
  121. createButton.clickCoolButton = function () {
  122.      var el = createButton.getParentCoolButton(window.event.srcElement);
  123.     el.onaction = el.getAttribute("onaction");
  124.     if (el == null || !el._enabled || el.onaction == "" || el.onaction == null) return;
  125.     
  126.     if (typeof el.onaction == "string")
  127.         el.onaction = new Function ("event", el.onaction);
  128.     
  129.     el.onaction(window.event);
  130. };
  131.  
  132. createButton.keypressCoolButton = function () {
  133.     var el = createButton.getParentCoolButton(window.event.srcElement);
  134.     if (el == null || !el._enabled || window.event.keyCode != 13) return;
  135.     
  136.     el.setValue(!el._value);
  137.     
  138.     if (el.onaction == null) return;
  139.     
  140.     if (typeof el.onaction == "string")
  141.         el.onaction = new Function ("event", el.onaction);
  142.     
  143.     el.onaction(window.event);
  144. };
  145.  
  146. createButton.keydownCoolButton = function () {
  147.     var el = createButton.getParentCoolButton(window.event.srcElement);
  148.     if (el == null || !el._enabled || window.event.keyCode != 32) return;
  149.     createButton.downCoolButton();
  150. };
  151.  
  152. createButton.keyupCoolButton = function () {
  153.     var el = createButton.getParentCoolButton(window.event.srcElement);
  154.     if (el == null || !el._enabled || window.event.keyCode != 32) return;
  155.     createButton.upCoolButton();
  156.     
  157.     //el.setValue(!el._value);    // is handled in upCoolButton()
  158.     
  159.     if (el.onaction == null) return;
  160.     
  161.     if (typeof el.onaction == "string")
  162.         el.onaction = new Function ("event", el.onaction);
  163.     
  164.     el.onaction(window.event);
  165. };
  166.  
  167. createButton.focusCoolButton = function () {
  168.     var el = createButton.getParentCoolButton(window.event.srcElement);
  169.     if (el == null || !el._enabled) return;
  170.     createButton.setClassName(el);
  171. };
  172.  
  173. createButton.blurCoolButton = function () {
  174.     var el = createButton.getParentCoolButton(window.event.srcElement);
  175.     if (el == null) return;
  176.     
  177.     createButton.setClassName(el)
  178. };
  179.  
  180. createButton.getParentCoolButton = function (el) {
  181.     if (el == null) return null;
  182.     if (/coolButton/.test(el.className))
  183.         return el;
  184.     return createButton.getParentCoolButton(el.parentNode);
  185. };
  186.  
  187. /* end event listeners */
  188.  
  189. createButton.setClassName = function (el) {
  190.     var over = el._over;
  191.     var down = el._down;
  192.     var focused;
  193.     try {
  194.         focused = (el == document.activeElement && el.tabIndex > 0);
  195.     }
  196.     catch (exc) {
  197.         focused = false;
  198.     }
  199.     
  200.     if (!el._enabled) {
  201.         if (el._value)
  202.             el.className = "coolButtonActiveDisabled";
  203.         else
  204.             el.className = el._alwaysUp ? "coolButtonUpDisabled" : "coolButtonDisabled";
  205.     }
  206.     else {
  207.         if (el._value) {
  208.             if (over || down || focused)
  209.                 el.className = "coolButtonActiveHover";
  210.             else
  211.                 el.className = "coolButtonActive";
  212.         }
  213.         else {
  214.             if (down)
  215.                 el.className = "coolButtonActiveHover";
  216.             else if (over || el._alwaysUp || focused)
  217.                 el.className = "coolButtonHover";
  218.             else
  219.                 el.className = "coolButton";
  220.         }
  221.     }
  222. };
  223.  
  224. createButton.setEnabled = function (b) {
  225.     if (this._enabled != b) {
  226.         this._enabled = b;
  227.         createButton.setClassName(this, false, false);
  228.         if (!window.moz) {
  229.             if (b)
  230.                 this.innerHTML = this.firstChild.firstChild.innerHTML;
  231.             else
  232.                 this.innerHTML = "<span class='coolButtonDisabledContainer'><span class='coolButtonDisabledContainer'>" + this.innerHTML + "</span></span>";
  233.         }
  234.     }
  235. };
  236.  
  237. createButton.getEnabled = function () {
  238.     return this._enabled;
  239. };
  240.  
  241. createButton.setValue = function (v, bDontTriggerOnChange) {
  242.     if (this._toggle && this._value != v) {
  243.         this._value = v;
  244.         createButton.setClassName(this, false, false);
  245.         
  246.         this.onchange = this.getAttribute("onchange");
  247.         
  248.         if (this.onchange == null || this.onchange == "" || bDontTriggerOnChange) return;
  249.         
  250.         if (typeof this.onchange == "string")
  251.             this.onchange = new Function("", this.onchange);
  252.  
  253.         this.onchange();
  254.     }
  255. };
  256.  
  257. createButton.getValue = function () {
  258.     return this._value;
  259. };
  260.  
  261. createButton.setToggle = function (t) {
  262.     if (this._toggle != t) {
  263.         this._toggle = t;
  264.         if (!t) this.setValue(false);
  265.     }
  266. };
  267.  
  268. createButton.getToggle = function () {
  269.     return this._toggle;
  270. };
  271.  
  272. createButton.setAlwaysUp = function (up) {
  273.     if (this._alwaysUp != up) {
  274.         this._alwaysUp = up;
  275.         createButton.setClassName(this, false, false);
  276.     }
  277. };
  278.  
  279. createButton.getAlwaysUp = function () {
  280.     return this._alwaysUp;
  281. };